1. Field of the Invention
The present invention relates to an Internet protocol version 6 (IPv6), and more particularly, to interconnection between an IPv6 network and an Internet protocol version 4 (IPv4) network.
2. Description of the Related Art
Recently, the number of network apparatuses used in IPv6 networks has increased. However, the majority of network apparatuses are still used in existing IPv4 networks. Accordingly, interconnection between IPv6 networks and IPv4 networks and mutual translation of their IP addresses are needed.
In order for nodes connected to an IPv6 network and nodes connected to an IPv4 network to be interconnected and communicate with each other, an address translator which translates between IPv6 addresses and IPv4 addresses is needed. Among the methods of mutually translating IPv6 addresses and IPv4 addresses, a network address translation-protocol translation (NAT-PT) technique is widely known as an address translation and protocol translation technique used in IPv6-IPv4 networks.
The NAT-PT is a standard set up as RFC 2766 by the Internet international standardization organization, Internet Engineering Task Force (IETF) and describes a function for IPv6-IPv4 translation. According to the NAT-PT, a host or application connected to an IPv6 network can communicate with a host or application connected to an IPv4 network. The IPv6 host has only an IPv6 stack and the IPv4 host has only an IPv4 stack and an apparatus performing the NAT-PT is located on the boundary between the IPv6 network and the IPv4 network. In general, the apparatus performing the NAT-PT is in a location where a boundary router is, and has an IPv4/IPv6 dual stack. In addition, this apparatus performing the NAT-PT has an IPv4 address pool collecting IPv4 addresses which will be dynamically allocated when hosts connected to the IPv6 network desire to communicate with hosts connected to the IPv4 network.
The NAT-PT apparatus, as the name indicates, broadly performs two functions. The first one is a network address translation (NAT) function for performing address translation at a boundary router between two networks, with an IPv4 address pool for dynamically allocating IPv4 addresses to IPv6 nodes whenever a session is initialized. That is, the NAT-PT apparatus operates as an address mapper and translates addresses in the IPv4 and IPv6 packet headers.
The second function is protocol translation (PT) and the apparatus performs address translation based on the RFC 2765 standard document, stateless IP/ICMP translation (SIIT) algorithm, which defines a translation function in a host. In addition, in order to dynamically allocate and translate addresses, additional requirements including IP addresses and port information occur in a payload region by applications, and an application level gateway (ALG) should be used to support these requirements. As representative examples, there are DNS-ALG and FFP-ALG, and the DNS-ALG performs query type translation between type “AAAA” and type “A” queries, and address information exchange between DNSv4 and DNSv6. These ALGs are distinguished from an application proxy in that the ALGs do not need an additional exclusive protocol unlike the application proxy.
FIG. 1 is a diagram showing the interconnection of an IPv6 network and an IPv4 network through an NAT-PT apparatus.
The NAT-PT apparatus 110 translates an IPv4 address into an IPv6 address and vice versa. The NAT-PT apparatus 110 also comprises an SIIT performing unit which provides a function for translating between a 32-bit IPv4 header and a 128-bit IPv6 header.
FIG. 2 is a diagram illustrating translation between an IPv4 packet header and an IPv6 packet header, which is performed by an SIIT unit.
ToS field 201 of an IPv4 packet header 200 corresponds to Class field 251 of an IPv6 packet header 250. A value obtained by subtracting the length of the header from the total length 202 of the IPv4 packet header 200 is mapped to Payload Length field 252 of the IPv6 packet header 250. Also, TTL field 203 of the IPv4 packet header 200 corresponds to Hop Limit field 253 of the IPv6 packet header 250, and Protocol field 204 is mapped to Next Header field 254. Other fields of the IPv6 packet header 250 that are not defined in the IPv4 packet header 200 are calculated by themselves and inserted.
DNSv6 server 120 supports an AAAA-type query for searching for IPv6 addresses, and is a domain name server which provides IP addresses on the host name of the IPv6 network.
The NAT-PT specifications defined in the RFC 2766 define an IPv4 address pool which stores IPv4 addresses mapped with IPv6 addresses when an IPv6 address is translated into an IPv4 address; a DNS static mapping unit which performs mapping from an IPv4 address to an IPv6 address when, in order to find an IPv6 node which desires to transmits a packet, an IPv4 node sends a query for searching for the address of an IPv6 node to the DNSv6 server; and a mapping table which is a table storing a 96-bit dummy prefix which is a high-order prefix used when a 32-bit IPv4 address is translated into a 128-bit IPv6 address, and information on relations between translated IPv4 addresses and IPv6 addresses.
In order for a node 130a of the IPv6 network to be connected to a node 140a of the IPv4 network, a process such as the following is performed.
In order to find the address of the IPv4 node 140a, an A-type DNS query is transmitted to the DNSv6 server 120. However, the DNSv6 cannot find the address of the IPv4 node 140a. Accordingly, after finding the address of the DNSv4 server 150 stored in the secondary DNSv6 server, a packet is transmitted to the secondary DNSv4 server 150. The DNSv4 server 150 transmits the address of the IPv4 node 140a to the NAT-PT apparatus 110. Then, the NAT-PT apparatus 110 generates a 128-bit IPv6 address by adding a 96-bit prefix to the 32-bit address of the IPv4 node 140a included in the data packet, and transmits the data packet to the IPv6 node 130a. 
Thus, after obtaining the IPv4 address, the IPv6 node transmits a packet desired to be transmitted, to the NAT-PT apparatus 110. Receiving the packet, the NAT-PT apparatus 110 translates the IPv6 address into the IPv4 address. As the source address, the IPv4 address mapped with the IPv6 address is fetched from the IPv4 address pool and used. As the destination address, the low-order 32-bits of the IPv6 address which is obtained by adding the 96-bit dummy prefix to the IPv4 address desired to be accessed, is used.
By using the thus obtained source address and destination address, a data packet is transmitted to the IPv4 node. Reversely, in order to transmit data from a node connected to the IPv4 network to a node connected to the IPv6 network, a mapping table is also generated in the NAT-PT apparatus 110 and the address is translated. That is, the mapping table is a table in which IPv4 addresses and IPv6 addresses are mapped with each other. The NAT-PT apparatus 110 transmits a packet to the IPv4 destination.
FIG. 3 is a diagram illustrating a process in which a session is set up from an IPv6 node to an IPv4 node by using NAT-PT.
If the source address of an IPv6 host 310 is FEDC:BA98::7654:3210 and the destination address is 132.146.243.30, the NAT-PT apparatus 320 uses an address pool 330 such that an IPv4 address corresponding to the source address FEDC:BA98::7654:3210 is allocated. Assuming that the allocated IPv4 address is 120.130.26.10, the source address is set to 120.130.26.10 at this time, and connected to the destination IPv4 host 340.
However, if this NAT-PT technique is used, all packets should be processed by the NAT-PT apparatus 320. Accordingly, as the number of nodes connected to the IPv6 network increases, the amount of data that needs to be processed by the NAT-PT apparatus 320 rapidly increases, and it is difficult to use the apparatus in a large-scale network.
To solve this problem, nodes connected to the IPv6 and IPv4 networks may be grouped into sub-groups, or networks may be designed to have a plurality of NAT-PT apparatuses. However, in such cases, information cannot be shared among the sub-nets or the plurality of NAT-PT apparatuses.